package com.wondertek.poms.service.controller;//package com.wondertek.poms.service.controller;
//
//import com.wondertek.poms.common.constant.Constants;
//import com.wondertek.poms.common.exception.MessageCodes;
//import com.wondertek.poms.common.utils.validate.ValidateFilter;
//import com.wondertek.poms.common.vo.PageBean;
//import com.wondertek.poms.common.vo.ResultBean;
//import com.wondertek.poms.core.service.IPcPrdInfoRateChargeService;
//import com.wondertek.poms.core.service.IPrdInfoService;
//import com.wondertek.poms.dao.po.PcPrdInfoRateCharge;
//import com.wondertek.poms.dao.po.PrdInfo;
//import com.wondertek.poms.dao.pojo.PcPrdInfoRateChargePojo;
//import com.wondertek.poms.service.vo.PcPrdInfoRateChargeVo;
//import org.apache.commons.lang3.StringUtils;
//import org.springframework.beans.BeanUtils;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.data.domain.Example;
//import org.springframework.data.domain.Page;
//import org.springframework.transaction.annotation.Transactional;
//import org.springframework.web.bind.annotation.DeleteMapping;
//import org.springframework.web.bind.annotation.GetMapping;
//import org.springframework.web.bind.annotation.PostMapping;
//import org.springframework.web.bind.annotation.PutMapping;
//import org.springframework.web.bind.annotation.RequestBody;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestParam;
//import org.springframework.web.bind.annotation.ResponseBody;
//import org.springframework.web.bind.annotation.RestController;
//
//import java.util.List;
//import java.util.Objects;
//
///**
// * @author evan0213
// * @description
// */
//@RestController
//@RequestMapping("prd-info-rate-charge")
//public class PcPrdInfoRateChargeController {
//
//	@Autowired
//	private IPcPrdInfoRateChargeService prdInfoRateChargeService;
//	@Autowired
//	private IPrdInfoService prdInfoService;
//
//	@GetMapping("/list")
//	@ResponseBody
//	public ResultBean list(PcPrdInfoRateChargeVo prdInfoRateChargeVo,
//	                       @RequestParam(defaultValue = "1") int page,
//	                       @RequestParam(defaultValue = "20") int rows,
//	                       @RequestParam(defaultValue = "updated_time") String sidx,
//	                       @RequestParam(defaultValue = "desc") String sord) {
//		if (prdInfoRateChargeVo.getPrdInfoId() == null) {
//			return ResultBean.error("商品包id不能为空");
//		}
//		PcPrdInfoRateCharge prdInfoRateCharge = new PcPrdInfoRateCharge();
//		BeanUtils.copyProperties(prdInfoRateChargeVo, prdInfoRateCharge);
//		Page<PcPrdInfoRateChargePojo> pages = prdInfoRateChargeService.getRateChargeList(prdInfoRateCharge, page, rows, sord, sidx);
//		return PageBean.ok(pages.getTotalPages(), pages.getTotalElements(), pages.getContent());
//	}
//
//	@PostMapping(value = "/add")
//	@ResponseBody
//	@Transactional
//	public ResultBean add(@RequestBody PcPrdInfoRateChargeVo prdInfoRateChargeVo) {
//		List<String> messageList = ValidateFilter.getFilterMessage(prdInfoRateChargeVo, Constants.VALIDATE_DEFAULT);
//		if (!messageList.isEmpty()) {
//			return ResultBean.error(messageList.toString());
//		}
//		//判断商品包计费配置是否重复
//		if (isRepeatForAdd(prdInfoRateChargeVo))
//			return ResultBean.error(MessageCodes.get(MessageCodes.M990014));
//		if (getValidateMessage(prdInfoRateChargeVo) != 1) {
//			return ResultBean.error(MessageCodes.get(MessageCodes.M990031));
//		}
////        if(prdInfoRateChargeVo.getPrdInfoId()!=null && StringUtils.isNotBlank(prdInfoRateChargeVo.getRateLabel())){
////            if(prdInfoRateChargeService.getByPrdInfoIdAndRateLabel(prdInfoRateChargeVo.getPrdInfoId(),prdInfoRateChargeVo.getRateLabel()).size()>0){
////                return ResultBean.error(MessageCodes.get(MessageCodes.M990037));
////            }
////        }
//		PcPrdInfoRateCharge prdInfoRateCharge = new PcPrdInfoRateCharge();
//		BeanUtils.copyProperties(prdInfoRateChargeVo, prdInfoRateCharge);
//		//设置时间和操作人姓名
//		PcPrdInfoRateCharge.putTimeAndUser(prdInfoRateCharge);
//		PcPrdInfoRateCharge result = prdInfoRateChargeService.save(prdInfoRateCharge);
//		if (result != null) {
//			PrdInfo currentPrdInfo = prdInfoService.findById(prdInfoRateChargeVo.getPrdInfoId());
//			if (currentPrdInfo.getIsPublish().intValue() == Constants.PRD_INFO_PUBLISH_STATUS_2) {
//				prdInfoService.publishPrdinfo(prdInfoRateChargeVo.getPrdInfoId().toString());
//			}
//			return ResultBean.ok();
//		} else {
//			return ResultBean.error(MessageCodes.get(MessageCodes.M990000));
//		}
//	}
//
//	/**
//	 * <p><b>Title:</b> isRepeat</p>
//	 * <p><b>Description:</b> 判断商品包码率收费配置表数据是否重复</p>
//	 *
//	 * @param prdInfoRateChargeVo 商品包码率收费Vo
//	 * @author anyouz
//	 */
//	private boolean isRepeatForAdd(PcPrdInfoRateChargeVo prdInfoRateChargeVo) {
//		PcPrdInfoRateCharge temp = new PcPrdInfoRateCharge();
//		CopyUtils.copyProperties(prdInfoRateChargeVo, temp);
//		if (StringUtils.isBlank(prdInfoRateChargeVo.getPrice())) {
//			prdInfoRateChargeVo.setPrice(null);
//			temp.setPrice(null);
//		}
//		if (StringUtils.isBlank(prdInfoRateChargeVo.getRateLabel())) {
//			prdInfoRateChargeVo.setRateLabel(null);
//			temp.setRateLabel(null);
//		}
//		List<PcPrdInfoRateCharge> list = prdInfoRateChargeService.findAll(Example.of(temp));
//		for (PcPrdInfoRateCharge rateCharge : list) {
//			PcPrdInfoRateChargeVo vo = new PcPrdInfoRateChargeVo();
//			PcPrdInfoRateChargeVo tempVo = new PcPrdInfoRateChargeVo();
//			CopyUtils.copyProperties(prdInfoRateChargeVo, tempVo, "id");
//			CopyUtils.copyProperties(rateCharge, vo, "id");
//			if (vo.equals(tempVo)) {
//				if (prdInfoRateChargeVo.getId() == null || !Objects.equals(prdInfoRateChargeVo.getId(), rateCharge.getId())) {
//					return true;
//				}
//			}
//		}
//		return false;
//	}
//
//	@GetMapping(value = "/detail")
//	@ResponseBody
//	public ResultBean get(Long id) {
//		PcPrdInfoRateCharge prdInfoRateCharge = prdInfoRateChargeService.get(id);
//		return ResultBean.ok(prdInfoRateCharge);
//	}
//
//	@PutMapping(value = "/edit")
//	@ResponseBody
//	public ResultBean update(@RequestBody PcPrdInfoRateChargeVo prdInfoRateChargeVo) {
//		List<String> messageList = ValidateFilter.getFilterMessage(prdInfoRateChargeVo, Constants.VALIDATE_UPDATE);
//		if (!messageList.isEmpty()) {
//			return ResultBean.error(messageList.toString());
//		}
//		if (isRepeatForEdit(prdInfoRateChargeVo))
//			return ResultBean.error(MessageCodes.get(MessageCodes.M990014));
//		if (getValidateMessage(prdInfoRateChargeVo) != 1) {
//			return ResultBean.error("计费ID，权益节点编码有且必须只有一个");
//		}
//		PcPrdInfoRateCharge temp = new PcPrdInfoRateCharge();
//		temp.setId(prdInfoRateChargeVo.getId());
//		PcPrdInfoRateCharge current = prdInfoRateChargeService.findOne(temp);
//		if (current == null) {
//			return ResultBean.error(MessageCodes.get(MessageCodes.M990020));
//		}
//		//判断是否码率标签重复
////        Long tempPrdInfoId = prdInfoRateChargeVo.getPrdInfoId();
////        String tempRateLabel = prdInfoRateChargeVo.getRateLabel();
////        List<PcPrdInfoRateCharge> list = prdInfoRateChargeService.getByPrdInfoIdAndRateLabel(tempPrdInfoId ,tempRateLabel);
////        if(!list.get(0).getId().equals(prdInfoRateChargeVo.getId())){
////            return ResultBean.error(MessageCodes.get(MessageCodes.M990037));
////        }
//		BeanUtils.copyProperties(prdInfoRateChargeVo, temp);
//		PcPrdInfoRateCharge result = prdInfoRateChargeService.merge(temp);
//		if (result != null) {
//			PrdInfo currentPrdInfo = prdInfoService.findById(prdInfoRateChargeVo.getPrdInfoId());
//			if (currentPrdInfo.getIsPublish().intValue() == Constants.PRD_INFO_PUBLISH_STATUS_2) {
//				prdInfoService.publishPrdinfo(prdInfoRateChargeVo.getPrdInfoId().toString());
//			}
//			return ResultBean.ok(result);
//		} else {
//			return ResultBean.error(MessageCodes.get(MessageCodes.M990000));
//		}
//	}
//
//	@DeleteMapping(value = "/del")
//	@ResponseBody
//	@Transactional(rollbackFor = Exception.class)
//	public ResultBean delete(@RequestParam String ids) {
//		try {
//			//不是物理删除，是逻辑删除
//			if (StringUtils.isNotBlank(ids)) {
//				String[] idArray = ids.split(",");
//				if (idArray.length > 0) {
//					for (int i = 0; i < idArray.length; i++) {
//						prdInfoRateChargeService.deleteLogic(Long.parseLong(idArray[i]));
//						PcPrdInfoRateCharge tempRateCharge = prdInfoRateChargeService.findById(Long.parseLong(idArray[i]));
//						PrdInfo tempPrdInfo = prdInfoService.findById(tempRateCharge.getPrdInfoId());
//						if (tempPrdInfo.getIsPublish().intValue() == Constants.PRD_INFO_PUBLISH_STATUS_2) {
//							prdInfoService.publishPrdinfo(tempRateCharge.getPrdInfoId().toString());
//						}
//					}
//				}
//			} else {
//				return ResultBean.error(MessageCodes.get(MessageCodes.M990015));
//			}
//		} catch (Exception e) {
//			return ResultBean.error(MessageCodes.get(MessageCodes.M990000));
//		}
//		return ResultBean.ok();
//	}
//}
